<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title>Couchdbkit - 
    Welcome to the Couchdbkit project
</title>
    <!--[if IE]>

    <script>
        // allow IE to recognize HTMl5 elements
        document.createElement('section');
        document.createElement('article');
        document.createElement('aside');
        document.createElement('footer');
        document.createElement('header');
        document.createElement('nav');
        document.createElement('time');

    </script>
    <![endif]-->

    <link rel="stylesheet" href="/css/couchdbkit.css?20090615" type="text/css" media="screen, projection" />
    <link rel="stylesheet" href="/static/css/print.css?20090615" type="text/css" media="print" />
    <script type="text/javascript" src="/js/prettify.js"></script>
    
    <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="/feed.xml" />
    

    
    <meta name="verify-v1" content="uRIxDZjGXTbcTWwdAQ6mvGGMdpBP3fWFHXXNJ37fG3U=" >

        
</head>
<body onload="prettyPrint()">
    
    <div class="container">
        <header id="site_header">
            <h1><a href="/"><span>couchdbkit</span></a></h1>
            <ul id="main_nav">
                <li><a href="/">home</a></li>
                <li><a href="/blog/">news</a></li>
                <li><a href="/download.html">download</a></li>
                <li><a href="/docs/">documentation</a></li>
                <li><a href="/docs/api/">API</a></li>
            </ul>

        </header>
        
        

<div class="wrapper">
    <section id="about">
        <article id="goal">

            <h2>CouchDB framework in Python</h2>

            <p><strong><a href="http://couchdb.apache.org">Apache CouchDB</a></strong> is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. Among other features, it provides robust, incremental replication with bi-directional conflict detection and resolution, and is queryable and indexable using a table-oriented view engine with JavaScript acting as the default view definition language.</p>

            <p>Couchdbkit goal is to provide a framework for your Python application to access and manage Couchdb.</p>
        </article>

        <article id="features">

            <h2>Features</h2>
            <ul>
                <li>a full client always in sync with latest couchdb releases or trunk. Currently you can use full features of couchdb 0.9 and latest trunk</li>
                <li>a client allowing you to use the http backend you want via py-restclient. Currently curl or httplib. You could also write your own, see transports documentation of py-restclient.</li>
                <li>threadsafe</li>
                <li>A system to attach design docs to your application  and send them to CouchDB.</li>
                <li>Manage documents with dynamic schema. Documents are completely dynamic</li>
            </ul>
            <p class="gettingstarted"><a href="/docs/gettingstarted.html">Getting started</a></p>
        </article>
    </section>
</div>

        
        
        <aside id="sidebar">
            <ul class="sidenav">
                <li><a href="/blog/">Latest news</a></li>
                <li><a href="/download.html">Download latest</a></li>
                <li><a href="/docs/gettingstarted.html">Getting started</a></li>
                <li><a href="/docs/faq.html">Frequently Asked Questions</a></li>
                <li><a href="/docs/about.html">About couchdbkit</a></li>
                <li><a href="/contact.html">Getting help with couchdbkit</a></li>
            </ul>
            <div class="info">
                <h3>Getting started</h3>
                <p>See the <a href="/download.html">download instructions</a> for information on getting couchdbkit, and read the <a href="/docs/gettingstarted.html">getting started</a> instructions to start programming CouchDB in your own application in less than 10 minutes.</p>
            </div>
            <div class="info">
                <h3>Get involved</h3>
                <ul>
                    <li><p><a href="http://webchat.freenode.net/?channels=couchdbkit">#couchdbkit IRC channel</a>: chat with other couchdbkit users</p></li>
                    <li><p><a href="http://github.com/benoitc/couchdbkit/issues">Ticket system</a>: report bugs and make feature requests</p></li>
                    <li><p><a href="http://groups.google.com/group/couchdbkit">Mailing-List</a>: The main list for help and follow changes.</p></li>
                </ul>
                        
            </div>
           
        </aside>
        
    
        



<section id="content">
<article id="gettingstarted">

<h2>CouchDB framework in Python</h2>

<p>Couchdbkit provides you a full featured and easy client to access and manage CouchDB. It allows you to manage a CouchDB server, databases, doc managements and view access. All objects mostly reflect python objects for convenience. Server and Databases objects could be used for example as easy as using a dict.</p>

<pre class="code prettyprint">
from couchdbkit import Server

s = Server()

db = s.create_db("couchbdkit_test")
db['someid'] = { 'test': 'essai' }
doc = db['someid']
</pre>

<p>Map couchdb object to python object easily with dynamic schema. It's similar to ORMs but with all the couchdb awesomeness.</p>

<pre class="code prettyprint">
from couchdbkit import Document

class Greeting(Document):
    author = StringProperty()
    content = StringProperty()
    date = DateTimeProperty()
    
greet = Greeting()
greet.author = "Me"
greet.homepage = "http://couchdbkit.org"
</pre>
<p>Manage easily design docs in your Python application with <code>loaders</code>.</p> 
<pre class="code prettyprint">
from couchdbkit.designer import pushapps

pushapps('/path/to/designs', db)

</pre>

</article>
<article id="go_further">
    <h2>Next steps</h2>
    <p>Grab the <a href="download.html">code</a> and you can read through the <a href="/docs/gettingstarted.html">getting started</a> tutorial. After you've gone through that, best thing to do is read the <a href="/docs/">documentation</a> on this site.</p>
    <p>If you need help, don't hesitate to <a href="/contact.html">contact me</a>.</p>
</article>

</section>


        
        <footer id="bottom">
            <p class="copyright">2008-2012 &copy; <a href="http://benoitc.org">Benoît Chesneau</a> - Some rights reserved.</p>
            <div id="cc"><a rel="license" href="http://creativecommons.org/licenses/by/2.0/fr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by/2.0/fr/80x15.png" /></a> This <span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/InteractiveResource" rel="dc:type">website</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/2.0/fr/">Creative Commons Attribution 2.0 France License</a>.</div>
            <p>Hosted on <a href="http://github.com/">GitHub</a></p>
        </footer>
        
    </div>

    
    
    
</body>
</html>